import axios from 'axios'
import Vue from 'vue'
import router from './router/index'

// 创建实例时设置配置的默认值
const http = axios.create({
  baseURL: 'http://localhost:3000/admin/api',
  timeout: 6000
})

// 添加请求拦截器，这里做的是 每次请求之前都会将token传到后端在中间件中校验用户信息
http.interceptors.request.use(config => {
  if (localStorage.token) {
    // 为所有请求添加一个header,为保持url不变，把数据加载请求头中
    config.headers.Authorization = 'Bearer ' + localStorage.token
  }
  return config
}, err => {
  return Promise.reject(err)
})

// 添加响应拦截器
http.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  return response
}, function (err) {
  if (err.response) {
    Vue.prototype.$message({
      type: 'error',
      message: err.response.data.message
    })
    console.log(err.response)
    if (err.response.status === 401) {
      router.push('/Login')
    }
  }
  return Promise.reject(err)
})

export default http
